/**
 * 抑制已知的开发环境警告和调试信息
 */
export const suppressKnownWarnings = () => {
  // 抑制 -ms-high-contrast 废弃警告
  const originalWarn = console.warn
  console.warn = (...args) => {
    const message = args.join(' ')
    
    // 过滤掉 -ms-high-contrast 相关的废弃警告
    if (message.includes('-ms-high-contrast') && message.includes('deprecated')) {
      return
    }
    
    // 保留其他警告
    originalWarn.apply(console, args)
  }

  // 抑制不必要的日志信息
  const originalLog = console.log
  console.log = (...args) => {
    const message = args.join(' ')
    
    // 过滤掉 React DevTools 下载提示
    if (message.includes('React DevTools') && message.includes('better development experience')) {
      return
    }
    
    // 过滤掉浏览器扩展的调试信息
    if (message.includes('[debug-metadata]')) {
      return
    }
    
    // 过滤掉注入脚本的调试信息
    if (message.includes('injectScript') || message.includes('sendMessage') || message.includes('sendRuleToInjectScript')) {
      return
    }
    
    // 保留其他日志
    originalLog.apply(console, args)
  }

  // 抑制调试信息（通常来自浏览器扩展）
  const originalDebug = console.debug
  console.debug = (...args) => {
    const message = args.join(' ')
    
    // 过滤掉元数据调试信息
    if (message.includes('[debug-metadata]') || message.includes('injectScript') || message.includes('sendMessage')) {
      return
    }
    
    // 保留其他调试信息
    originalDebug.apply(console, args)
  }
}

/**
 * 恢复原始的控制台方法（如果需要的话）
 */
export const restoreConsole = () => {
  // 这里可以保存原始方法的引用并恢复
  // 目前项目中不需要恢复功能
}

/**
 * 过滤的调试信息类型：
 * 1. React DevTools 下载提示
 * 2. -ms-high-contrast CSS 废弃警告  
 * 3. 浏览器扩展调试信息 ([debug-metadata])
 * 4. 脚本注入相关日志 (injectScript, sendMessage, sendRuleToInjectScript)
 * 5. 元数据处理日志
 * 
 * 注意：这些过滤仅在开发环境生效，不会影响生产环境的日志
 */